import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;

import Interprete.maquinaP.*;



public class DHMOInterprete {

	/**
	 * @param args ficheroCompilado modoEjecucion(normal o traza)
	 */
	public static void main(String[] args) {
		try {
			if(args.length != 2)
				throw new Exception("Interprete mal ejecutado. Debe introducir 2 parametros el nombre del archivo y el modo de ejecucion (normal o traza). Ejemplo: ejecuta prueba1.txt traza");
			else if(!args[1].equals("normal") && !args[1].equals("traza"))
				throw new Exception("Interprete mal ejecutado. Debe introducir 2 parametros el nombre del archivo y el modo de ejecucion (normal o traza). Ejemplo: ejecuta prueba1.txt traza");
			BufferedReader entrada = new BufferedReader(new FileReader(args[0]));
			String linea = entrada.readLine();
			ArrayList<String> programa = new ArrayList<String>();
			while(linea != null)
			{
				programa.add(linea);
				linea = entrada.readLine();
			}				
			String modoEjecucion = args[1];
			MaquinaP maquina = new MaquinaP(programa,modoEjecucion);
			if(modoEjecucion.equals("normal") || modoEjecucion.equals("traza"))
				maquina.ejecuta();			
			else throw new Exception("Los argumentos deben ser el fichero a compilar y el modo de ejecucion (normal o traza)");
		}
		catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}
